GlDoom

glDoom (created and maintained by Bruce Lewis), based on WinDoom, was the first source port to add support to Doom. It was instrumental into the development of other hardware accelerated versions of Doom, inspiring projects such as Doom Legacy, Doomsday, GZDoom, and others.

History
glDoom was conceived on February 1, 1998. Lewis sought to improve his existing WinDoom codebase with a OpenGL renderer to support only hardware that actually accelerated hardware instead of relying on wrappers or closed source alternatives. Lewis kept extensive notes during the development of his port, describing the setbacks he experienced when he created the renderer. His notes provided him with several people willing to test his work out, leading to Lewis on occasion remarking that he had more than enough testers available. As such, glDoom was tested on a wide range of early 3D hardware at the time.

A first private alpha was released to an artist named Bill, on May 10, 1998. Described as a very EARLY alpha version of glDoom, this build would not play through levels properly, with the renderer not drawing everything required in the scene and being unoptimized. It required a separate file, because this build was made for the sky artist to work with. A separate version utilizing  was included but had significant more bugs. DirectX 5 was required to run this build.

A special build for video cards followed on August 27, 1998. Described as a alpha release, this build was for evaluation and drive work only. The separate  was still needed because this build was made for the sky artist to work with which likely is the same Bill. It also disabled some features to increase stability and lightmaps were not enabled.

The first public alpha was released on October 5, 1998. Before beta testing could be completed and the source code released publicly, the source was lost to a hard drive issue. This happened after version 0.94d was released on December 16, 1998. The last official glDoom version was released on December 23, 1998, as version 0.94e.

2010 reappearance
In April 2010, glDoom reappeared on SourceForge. The author discovered copies of the source code on the computer of a late friend of his. This resurrected version of the source code, however, was probably not the latest version (some features which work in the released binary no longer did) and had to be updated to compile with newer development environments. The ninth and last update to its SVN repository was made on October 8, 2010. It targets a 9 surface whilst sitll accelerating through OpenGL and adds support for widescreen monitors.

2020 unofficial updates
In April 2020, precisely ten years after glDoom resurfaced on SourceForge, unofficial updates to the latest glDoom code appeared, created by a programmer called Vsevolod Popov, aka RedPowar. He released 0.95b on April 4, and 0.95c on April 8, 2020. They contain several improvements to the port:
 * New floor/ceiling generation code (derived from Doom Legacy)
 * Aspect ratio fix (correct rendering on 16:9 displays). glDoom can now render for example in 1920x1080p resolution properly
 * Fixed invisible area culling (behind walls in sectors without ceiling)
 * Few bugfixes for buffer overflows & invalid memory pointers

2022 official reboot
In March 2022, Adam Bilbrough (Gibbon) requested by email to take over the project and make it available for the modern age. A confirmation by Bruce A. Lewis was given to Bilbrough that declared the latter the new official author of glDoom.

Its first release was 0.96a, on March 14. Incorporating the improvements from the 2020 updates and now licensed under the GPL, it was a minor release to implement to improve rendering. A more significant release followed with 0.96b on March 25, making the code 64-bit compatible and substantially raising the static limits of the engine.

Features

 * 64-bit compatible
 * Cross-platform support
 * Support for the No Rest for the Living expansion
 * Support for SIGIL
 * High resolution support (Default 640x480, but resolution can be defined)
 * OpenGL 1.0/1.1 based renderer
 * Selected weapon display in deathmatch (over the player's head - also cvar controlled)
 * Aiming crosshairs (only in conjunction with looking up and down)
 * and options which implement a simple score counter in the HUD
 * Increased static limits (Present starting from glDoom 0.96b)

Original features

 * All features from WinDoom
 * High resolution support (Default 640x480, but resolution can be defined)
 * OpenGL 1.0/1.1 based renderer
 * Bilinear filtering
 * Texture smoothing
 * Transparency and translucency from objects
 * Dynamic lighting from projects, weapon discharge and explosions (cvar controlled)
 * Player lighting from power-ups (cvar controlled)
 * Selected weapon display in deathmatch (over the player's head - also cvar controlled)
 * Aiming crosshairs (only in conjunction with looking up and down)

Static limits
Starting from glDoom 0.96b the following static limits are raised. They are derived from Sprinkled Doom, another port by Gibbon, and are then multiplied with the standard vanilla limits. The new limits are thus as follows: limit                        : old    * k   = new --- visplanes[MAXVISPLANES]      : 1024   * 128  = 131072 drawsegs[MAXDRAWSEGS]        : 2048   * 256  = 524288 segs[MAXSEGS]                : 9999   * 64   = 639936 SAVEGAMESIZE                 : 2883584 * 180224 = 519691042816 activeplats[MAXPLATS]        : 7680    * 30  = 230400 vissprites[MAXVISSPRITE]     : 1024    * 128 = 131072 linespeciallist[MAXLINEANIMS] : 16384  * 64 = 1048576 openings[MAXOPENINGS]        : 65536   * 64 = 4194304

System requirements
The absolute minimum system configuration to run glDoom is a 133Mhz Pentium with 16Mb of RAM and an 3D accelerator card with OpenGL drivers. The program will run on a system like this but is far too slow to be enjoyable. The recommended system configuration to run glDoom is a 166Mhz or higher Pentium with 64Mb of RAM, a 3D accelerator card with native OpenGL drivers (not a Direct3D wrapper), a mouse and a sound card with wave table Midi support.

The 2010 release relies on DirectX9 to work with.

The 2022 reboot is 64 bit compatible and will move OpenGL rendering to shaders.

Supported cards
Note: This is for the latest 1998 release, 0.94e. 3Dfx Voodoo II - tested 3Dfx Voodoo - tested 3Dfx Rush - tested 3Dfx Banshee - tested Rendition V2100 - tested Rendition V2200 - tested nVidia Riva 128 - tested nVidia Riva TNT - tested PowerVR PCX2 - drivers not finished Permedia II - tested (monochrome lighting only) Glint 500 - tested Glint GMX - tested Intergraph Realizm - tested Intergraph Realizm II - tested Evans & Sutherland - tested ATI Rage Pro - tested (incomplete) Intel i740 (Real3D) - tested nVidia Riva TNT - tested S3 Savage 3D - (being tested by S3) Matrox G200 - tested